package leetcode.array_sort;

/**
 * 345. 反转字符串中的元音字母
 * <p>
 * 编写一个函数，以字符串作为输入，反转该字符串中的元音字母。
 * <p>
 * 示例 1:
 * <p>
 * 输入: "hello"
 * 输出: "holle"
 * <p>
 * 示例 2:
 * <p>
 * 输入: "leetcode"
 * 输出: "leotcede"
 */
public class Solution345 {
    public static String reverseVowels(String s) {
        char[] chars = s.toCharArray();
//指针碰撞法
        int i = 0;
        int j = chars.length - 1;
        while (i < j) {
            if (judge(chars[i])) {
                i++;
                continue;
            }
            if (judge(chars[j])) {
                j--;
                continue;
            }
            if (i < j && !judge(chars[i]) && !judge(chars[j])) {
                char tep = chars[i];
                chars[i] = chars[j];
                chars[j] = tep;
                i++;
                j--;
            }
        }
        String str = new String(chars);
        return str;
    }

    public static boolean judge(char c) {
        if (c != 'a' && c != 'e' && c != 'i' && c != 'o' && c != 'u' && c != 'A' && c != 'E' && c != 'I' && c != 'O' && c != 'U') {
            return true;
        } else {
            return false;
        }
    }

    public static void main(String[] args) {
        System.out.println(reverseVowels("hello"));
    }

}
